package extraction;

import java.io.IOException;
import java.util.ArrayList;

import classifieurs.DataClassification;

import tools.FrenchStemmer;
import tools.FrenchTokenizer;
import tools.Normalizer;


/**
 *	Cette classe enregistre un tweet avec ses différents attributs.
 *
 */
public class Tweet {

	private String topic;
	private String sentiment;
	private String tweetId;
	private String tweetDate;
	private String tweetText;
	private ArrayList<String> motsText;
	private String sentiment_test;

	private Integer longueurMessage;

	public Tweet (String topic, String sentiment, String id, String date, String text){
		this.topic = topic;
		this.sentiment = sentiment;
		this.tweetId = id;
		this.tweetDate = date;
		this.tweetText = text;
		this.sentiment_test = "";
		

		this.setLongueurMessage(text.split(" ").length);
	}

	

	public ArrayList<String> getMotsTweetText(){
		ArrayList<String> liste = new ArrayList<String>();
		try {
			//Normalizer norm = new FrenchTokenizer(DataClassification.STOP_WORDS);
			Normalizer norm = new FrenchTokenizer(DataClassification.STOP_WORDS);

			liste = norm.normalizeLigne(tweetText, true);
//			for (int i=0; i<liste.size(); i++)
//				System.out.println("mots : "+liste.get(i));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return liste;

	}

	public String getTopic() {
		return topic;
	}
	public void setTopic(String topic) {
		this.topic = topic;
	}
	public String getSentiment() {
		return sentiment;
	}
	public void setSentiment(String sentiment) {
		this.sentiment = sentiment;
	}
	public String getTweetId() {
		return tweetId;
	}
	public void setTweetId(String tweetId) {
		this.tweetId = tweetId;
	}
	public String getTweetDate() {
		return tweetDate;
	}
	public void setTweetDate(String tweetDate) {
		this.tweetDate = tweetDate;
	}
	public String getTweetText() {
		return tweetText;
	}
	public void setTweetText(String tweetText) {
		this.tweetText = tweetText;
	}

	public Integer getLongueurMessage() {
		return longueurMessage;
	}

	public void setLongueurMessage(Integer longueurMessage) {
		this.longueurMessage = longueurMessage;
	}
	
	/**
	 * Méthode qui vérifie si le mot est présent dans ce tweet
	 * @param mot
	 * @return
	 */
	public boolean motPresent(String mot) {
		return getMotsText().contains(mot);
	}

	public ArrayList<String> getMotsText() {
		return motsText;
	}

	public void setMotsText(ArrayList<String> motsText) {
		this.motsText = motsText;
	}


	public String getSentiment_test() {
		return sentiment_test;
	}

	public void setSentiment_test(String sentiment_test) {
		this.sentiment_test = sentiment_test;
	}
}
